From 2bdefee6abc9e394c60835a9615bd4d428144c36 Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Tue, 13 Dec 2005 17:01:09 +0100 Subject: [PATCH] Add an option for device model to disable key repeat. On slow network, when creating a vmx guest remotely, the key repeat feature may make it hard to even type the user name and password to login in to guest OS. Signed-off-by: Eddie Dong Signed-off-by: Xiaofeng Ling --- tools/ioemu/sdl.c | 3 ++- tools/ioemu/vl.c | 7 +++++++ tools/ioemu/vl.h | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/tools/ioemu/sdl.c b/tools/ioemu/sdl.c index 9e262bf4de..1c8154a406 100644 --- a/tools/ioemu/sdl.c +++ b/tools/ioemu/sdl.c @@ -592,7 +592,8 @@ void sdl_display_init(DisplayState *ds, int full_screen) sdl_resize(ds, 640, 400); sdl_update_caption(); - SDL_EnableKeyRepeat(250, 50); + if(repeat_key) + SDL_EnableKeyRepeat(250, 50); SDL_EnableUNICODE(1); gui_grab = 0; diff --git a/tools/ioemu/vl.c b/tools/ioemu/vl.c index d0fa5c5d56..19b4333305 100644 --- a/tools/ioemu/vl.c +++ b/tools/ioemu/vl.c @@ -145,6 +145,7 @@ int graphic_width = 800; int graphic_height = 600; int graphic_depth = 15; int full_screen = 0; +int repeat_key = 1; TextConsole *vga_console; CharDriverState *serial_hds[MAX_SERIAL_PORTS]; int xc_handle; @@ -2250,6 +2251,7 @@ void help(void) "-std-vga simulate a standard VGA card with VESA Bochs Extensions\n" " (default is CL-GD5446 PCI VGA)\n" "-vgaacc [0|1] 1 to accelerate CL-GD5446 speed, default is 1\n" + "-no-repeatkey disable key repeat feature for SDL keyboard simulation" #endif "-loadvm file start right away with a saved state (loadvm in monitor)\n" "\n" @@ -2342,6 +2344,7 @@ enum { QEMU_OPTION_loadvm, QEMU_OPTION_full_screen, QEMU_OPTION_vgaacc, + QEMU_OPTION_repeatkey, }; typedef struct QEMUOption { @@ -2421,6 +2424,7 @@ const QEMUOption qemu_options[] = { { "nic-ne2000", 0, QEMU_OPTION_nic_ne2000 }, { "cirrusvga", 0, QEMU_OPTION_cirrusvga }, { "vgaacc", HAS_ARG, QEMU_OPTION_vgaacc }, + { "no-repeatkey", 0, QEMU_OPTION_repeatkey }, { NULL }, }; @@ -2976,6 +2980,9 @@ int main(int argc, char **argv) } } break; + case QEMU_OPTION_repeatkey: + repeat_key = 0; + break; case QEMU_OPTION_std_vga: cirrus_vga_enabled = 0; break; diff --git a/tools/ioemu/vl.h b/tools/ioemu/vl.h index d38a9e1a71..b05c22f964 100644 --- a/tools/ioemu/vl.h +++ b/tools/ioemu/vl.h @@ -612,6 +612,7 @@ void pci_pcnet_init(PCIBus *bus, NetDriverState *nd); void kbd_init(void); extern const char* keyboard_layout; +extern int repeat_key; /* mc146818rtc.c */ -- 2.30.2